package com.ys.breakdemo;

import java.util.Scanner;
import java.util.SortedMap;

/**
 * @author CodeYang
 * @Description 十进制转二进制
 * @Date 2020/12/7 17:01
 */
public class BreakTset03 {


    /**
     * int 整形变量保存法:
     * 拼接二进制位，使用int类型的变量保存二进制
     * 定义一个result变量来保存二进制，result初始值为0
     * 第一趟：bit = 0   				     result += bit;    -->result = 0
     * 第二趟：bit = 0   bit = bit*10, 			 result += bit;    -->result = 0
     * 第三趟：bit = 1   bit = bit*10*10, 		 result += bit;    -->result = 100
     * 第四趟：bit = 0   bit = bit*10*10*10, 	 result += bit;    -->result = 100
     * 第五趟：bit = 1   bit = bit*10*10*10*10,  result += bit;    -->result = 10100
     *
     * @param args
     */
    public static void main(String[] args) {
        int num = 8;
        // 定义用于保存获取到的二进制
        int result = 0;
        // 用于保存while循环执行的次数
        int index = 0;
        while (num != 0) {
            // 1: 除2取余 //获取2进位
            int bit = num % 2;
            // 2: int 类型 高位合并
            for (int i = 0; i < index; i++) {
                bit = bit * 10;
            }
            result = result + bit;
            index++;
            num = num / 2;

        }
        System.out.println(result);
    }


    /* *
     * 字符串拼接法:
     *    除2取余,倒序相加
     *
     * @param args
     */
    /*
    public static void main(String[] args) {
        System.out.println("请输入一个十进制整数:");
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        String str = "";
        int result = 0;
        while (num != 0) {
            //3  除2取余 当被除数等于0时,证明已经 没有可除的了.所以跳出循环
            // 1 除2取余
            result = num % 2;
            //2 倒序相加  ---->
            str = result + str;
            num = num / 2;
        }
        System.out.println(str);
    }*/
}
